package com.xyzwps.orm.repository;

import com.xyzwps.orm.model.User;

import java.util.Optional;

public interface UserRepository {
    /**
     * 插入一条用户信息，返回自动生成的 userId。
     *
     * @param user 用户信息。忽略 userId
     * @return 自动生成的 userId
     */
    int insert(User user);

    /**
     * 更新用户信息
     *
     * @param user 被更新的用户信息。要求 userId != null
     */
    void update(User user);

    /**
     * 按 userId 查询用户信息
     * @param userId userId
     * @return 如果用户信息不存在，则返回 empty
     */
    Optional<User> selectByUserId(int userId);
}
